package com.skivingcloud.report.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;

import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serial;

/**
 * pdf/打印设置表 实体类。
 *
 * @author skivingcloud
 * @since 2024-11-13
 */
@Schema(description = "pdf/打印设置表")
@Table("report_sheet_pdf_print_setting")
public class ReportSheetPdfPrintSetting implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @Id
    @Schema(description = "主键id")
    private String id;

    /**
     * 模板id
     */
    @Schema(description = "模板id")
    private String tplId;

    /**
     * 模板sheeti d
     */
    @Schema(description = "模板sheeti d")
    private String tplSheetId;

    /**
     * 纸张类型 1 A3 2 A4 3 A5 4 A6 5 B2 6B3 7B4 8 B5 9LETTER 10 LEGAL
     */
    @Schema(description = "纸张类型 1 A3 2 A4 3 A5 4 A6 5 B2 6B3 7B4 8 B5 9LETTER 10 LEGAL")
    private String pageType;

    /**
     * 纸张布局 1纵向 2横向
     */
    @Schema(description = "纸张布局 1纵向 2横向")
    private String pageLayout;

    /**
     * 页眉是否显示 1是 0否
     */
    @Schema(description = "页眉是否显示 1是 0否")
    private String pageHeaderShow;

    /**
     * 页眉显示内容
     */
    @Schema(description = "页眉显示内容")
    private String pageHeaderContent;

    /**
     * 页眉显示位置 1左 2中 3右
     */
    @Schema(description = "页眉显示位置 1左 2中 3右")
    private String pageHeaderPosition;

    /**
     * 水印是否显示 1是 0否
     */
    @Schema(description = "水印是否显示 1是 0否")
    private String waterMarkShow;

    /**
     * 水印类型 1文本 2图片
     */
    @Schema(description = "水印类型 1文本 2图片")
    private String waterMarkType;

    /**
     * 文本水印内容
     */
    @Schema(description = "文本水印内容")
    private String waterMarkContent;

    /**
     * 图片水印url
     */
    @Schema(description = "图片水印url")
    private String waterMarkImg;

    /**
     * 水印透明度 大于0小于1的值
     */
    @Schema(description = "水印透明度 大于0小于1的值")
    private Float waterMarkOpacity;

    /**
     * 页码是否显示 1是 0否
     */
    @Schema(description = "页码是否显示 1是 0否")
    private String pageShow;

    /**
     * 页码显示位置 1左 2中 3右
     */
    @Schema(description = "页码显示位置 1左 2中 3右")
    private String pagePosition;

    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String creator;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    @Schema(description = "更新人")
    private String updater;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    /**
     * 是否删除 1是 0否
     */
    @Schema(description = "是否删除 1是 0否")
    private String delFlag;

    /**
     * 是否水平分页 1是 0否
     */
    @Schema(description = "是否水平分页 1是 0否")
    private String horizontalPage;

    /**
     * 分页列，多个列用,隔开
     */
    @Schema(description = "分页列，多个列用,隔开")
    private String horizontalPageColumn;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTplId() {
        return tplId;
    }

    public void setTplId(String tplId) {
        this.tplId = tplId;
    }

    public String getTplSheetId() {
        return tplSheetId;
    }

    public void setTplSheetId(String tplSheetId) {
        this.tplSheetId = tplSheetId;
    }

    public String getPageType() {
        return pageType;
    }

    public void setPageType(String pageType) {
        this.pageType = pageType;
    }

    public String getPageLayout() {
        return pageLayout;
    }

    public void setPageLayout(String pageLayout) {
        this.pageLayout = pageLayout;
    }

    public String getPageHeaderShow() {
        return pageHeaderShow;
    }

    public void setPageHeaderShow(String pageHeaderShow) {
        this.pageHeaderShow = pageHeaderShow;
    }

    public String getPageHeaderContent() {
        return pageHeaderContent;
    }

    public void setPageHeaderContent(String pageHeaderContent) {
        this.pageHeaderContent = pageHeaderContent;
    }

    public String getPageHeaderPosition() {
        return pageHeaderPosition;
    }

    public void setPageHeaderPosition(String pageHeaderPosition) {
        this.pageHeaderPosition = pageHeaderPosition;
    }

    public String getWaterMarkShow() {
        return waterMarkShow;
    }

    public void setWaterMarkShow(String waterMarkShow) {
        this.waterMarkShow = waterMarkShow;
    }

    public String getWaterMarkType() {
        return waterMarkType;
    }

    public void setWaterMarkType(String waterMarkType) {
        this.waterMarkType = waterMarkType;
    }

    public String getWaterMarkContent() {
        return waterMarkContent;
    }

    public void setWaterMarkContent(String waterMarkContent) {
        this.waterMarkContent = waterMarkContent;
    }

    public String getWaterMarkImg() {
        return waterMarkImg;
    }

    public void setWaterMarkImg(String waterMarkImg) {
        this.waterMarkImg = waterMarkImg;
    }

    public Float getWaterMarkOpacity() {
        return waterMarkOpacity;
    }

    public void setWaterMarkOpacity(Float waterMarkOpacity) {
        this.waterMarkOpacity = waterMarkOpacity;
    }

    public String getPageShow() {
        return pageShow;
    }

    public void setPageShow(String pageShow) {
        this.pageShow = pageShow;
    }

    public String getPagePosition() {
        return pagePosition;
    }

    public void setPagePosition(String pagePosition) {
        this.pagePosition = pagePosition;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getUpdater() {
        return updater;
    }

    public void setUpdater(String updater) {
        this.updater = updater;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getHorizontalPage() {
        return horizontalPage;
    }

    public void setHorizontalPage(String horizontalPage) {
        this.horizontalPage = horizontalPage;
    }

    public String getHorizontalPageColumn() {
        return horizontalPageColumn;
    }

    public void setHorizontalPageColumn(String horizontalPageColumn) {
        this.horizontalPageColumn = horizontalPageColumn;
    }

}
